/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.si3.servicio;

import com.si3.jpa.ControlJPA;
import com.si3.modelo.Alumno;
import com.si3.modelo.Login;
import com.si3.modelo.Profesor;
import com.si3.modelo.Usuario;

public class LoginService
{
    private String adminUser = "admin";
    private String adminPasswd = "admin";
    
    
    
    //método que verifica si un login es correcto.
    //si es correcto, añade al objeto de login el id del usuario y el tipo de 
    //usuario del que se trata y devuelve dicho objeto de login.
    //
    //si es incorrecto, devuelve null
    //
    public Login check(Login login)
    {
        System.out.println("[LogingService]Objeto login que llega:");
        System.out.println("user = "+login.getUser());
        System.out.println("pass = "+login.getPassword());

        if (login.getUser().equals(adminUser) && login.getPassword().equals(adminPasswd))
        {
            login.setUserType(Usuario.TipoUsuario.ADMIN);
            return login;
        }
        else //usuario no es admin
        {
            Alumno alumno=ControlJPA.getInstancia().getAlumno(login);
            if (alumno != null)
            {
                String dniAlumno = alumno.getDni();
                login.setUserType(Usuario.TipoUsuario.ALUMNO);
                login.setUsuario(alumno);
                return login;
            }
            else
            {
                Profesor profesor=ControlJPA.getInstancia().getProfesor(login);
                if (profesor != null)
                {
                  login.setUserType(Usuario.TipoUsuario.PROFESOR);
                  login.setUsuario(profesor);
                  return login;
                }
                else return null; //usuario no encontrado
            }
            
        }
        
    }
}
